package com.linkhub.oms.admin.modules.product.service;

import com.linkhub.oms.admin.modules.logistic.freighttemplate.domain.dto.LogisticFreightCalculateDTO;
import com.linkhub.oms.entity.resulttype.order.OrderInfoDO;

import java.math.BigDecimal;

/**
 * @Description: 本地产品计算服务
 * @Author: echo
 * @Date: 2024/5/25 19:39
 * @Version: 1.0
 */
public interface LocalProductCalculateService {

    /**
     * 获取订单产品重量和
     *
     * @param sysOrderId sysOrderId
     * @return 重量(G)
     */
    BigDecimal getOrderProductWeightTotal(String sysOrderId);

    /**
     * @param sysOrderId sysOrderId
     * @param hydration  是否加水
     * @return 重量(G)
     */
    BigDecimal getOrderProductWeightTotal(String sysOrderId, boolean hydration);

    /**
     * 获取订单产品体积和
     * @param sysOrderId
     * @return 体积(CM^3)
     */
    BigDecimal getOrderProductVolumeTotal(String sysOrderId);

    /**
     * 计算订单总体积(CM^3)和总重量(G),并组装物流运费计算DTO
     * @param sysOrderId
     * @return
     */
    LogisticFreightCalculateDTO calculateOrderWeightAndVolume(String sysOrderId);
}
